package com.props.starter.model;

import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.Map;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ConfigFile {
    
    /**
     * 文件名
     */
    private String fileName;
    
    /**
     * 文件路径
     */
    private String filePath;
    
    /**
     * 文件类型 (properties/yaml)
     */
    private String fileType;
    
    /**
     * 配置内容 (key-value形式)
     */
    private Map<String, Object> content;
    
    /**
     * 原始内容
     */
    private String rawContent;
    
    /**
     * 最后修改时间
     */
    private LocalDateTime lastModified;
    
    /**
     * 文件大小
     */
    private long fileSize;
    
    /**
     * 配置项可编辑性标识 (key -> 是否可编辑)
     * true: 运行时可动态修改
     * false: 启动时配置，不可修改
     */
    private Map<String, Boolean> editableFlags;
    
    /**
     * 最新版本的配置内容 (用于比对修改状态)
     * 如果为null表示没有保存过版本
     */
    private Map<String, Object> lastVersionContent;
} 